package clases;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//Camejo Yelitza C.I:17.506.253
//Vizcaya Sorangel C.I:15.580.353


public class Main {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void asignarprofesor(Seccion s, BufferedReader lector) throws IOException{
		String ced,nom,ape,tit;
		System.out.println("Ingrese la cedula del profesor: ");
		ced = lector.readLine();
		System.out.println("Ingrese el nombre del profesor: ");
		nom = lector.readLine();
		System.out.println("Ingrese el apellido del profesor: ");
		ape = lector.readLine();
		System.out.println("Ingrese el titulo del profesor: ");
		tit = lector.readLine();
		s.AsignarProfesor(new Profesor(ced, nom, ape, tit));
	}
	
	public static void inscribirestudiante(Seccion s, BufferedReader lector) throws IOException{
		String ced,nom,ape,resp;
		do{
		System.out.println("Ingrese la cedula del estudiante: ");
		ced = lector.readLine();
		if(!s.buscarCedula(ced)){
			System.out.println("Ingrese el nombre del estudiante: ");
			nom = lector.readLine();
			System.out.println("Ingrese el apellido del estudiante: ");
			ape = lector.readLine();		
			s.InscribirEstudiante(new Estudiante(ced, nom, ape));
			}
		else
			System.out.println("La cedula ingresada ya se encuentra registrada");
		System.out.println("Desea incribir otro estudiante Si(S-s) No(N-n): ");
		resp= lector.readLine();
		}while(resp.toUpperCase().equals("S"));
		
	}
	
	public static void buscarestudiante(Seccion s, BufferedReader lector) throws IOException{
		String ced;
		System.out.println("Ingrese la cedula del estudiante que desea buscar: ");
		ced = lector.readLine();
		s.BuscarEstCed(ced);		
	}
	
	public static void retirarestudiante(Seccion s, BufferedReader lector) throws IOException{
		String ced;
		System.out.println("Ingrese la cedula del estudiante que desea retirar: ");
		ced = lector.readLine();
		s.RetirarEstudiante(ced);		
	}
	
	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		Seccion seccion = new Seccion();
		BufferedReader lector = new BufferedReader(new InputStreamReader(System.in));
		String tipo;
		System.out.println("Ingrese el numero de la seccion: ");
		while(true){
			tipo = lector.readLine();
			try {
				seccion.setNumero(Integer.parseInt(tipo));
				break;
			} catch (NumberFormatException e) {
				System.out.println("Ingrese el numero de la seccion: ");
			}
		}
		int opcion;
		boolean inscribio=false,presento=false,profesor=true;
		do {
				System.out.println("--------------------------------");
				System.out.println("Escoja una de las siguientes opciones: ");
				
				System.out.println("1. Asignar Profesor");
				System.out.println("2. Inscribir Estudiante");
				System.out.println("3. Retirar Estudiante");
				System.out.println("4. Buscar Estudiante por cedula");
				System.out.println("5. Aplicar Evaluaciones");
				System.out.println("6. Listar de Estudiantes ordenados por Cedula");
				System.out.println("7. Listar de Estudiantes ordenados por Nota Final");
				System.out.println("8. Listado de Estudiantes Aprobados");
				System.out.println("9. Listado de Estudiantes Aplazados");
				System.out.println("10. Mostrar Promedio");
				System.out.println("presione cualquier otra tecla para salir");
				// Lectura de dato de entrada
				while(true){
					tipo = lector.readLine();
					try {
						Integer.parseInt(tipo);
						break;
					} catch (NumberFormatException s) {
						//System.out.println("Ingrese el numero de la seccion: ");
						System.out.println("�Opcion no Valida!");
						System.out.println("Opcion: ");
					}
				}
				opcion =Integer.parseInt(tipo);
				
				
				switch(opcion){
                case 1:{
                	if(profesor){
                		asignarprofesor(seccion, lector);
                		profesor= false;
                	}
                	else
                		 System.out.println("ya el profesor ha sido asignado");
                	lector.readLine();
                		
                }
                break;
                case 2:{
                	inscribio=true;
                    inscribirestudiante(seccion, lector);
                }
                break;
                case 3:{
                	if(inscribio)
                        retirarestudiante(seccion, lector);                  
                    else
                        System.out.println("Debe inscribir a los estudiantes");
                    lector.readLine();
                }
                case 4:{
                    if(inscribio)
                        buscarestudiante(seccion, lector);                  
                    else
                        System.out.println("Debe inscribir a los estudiantes");
                    lector.readLine();
                }
                break;
                case 5:{
                    if(inscribio){
                        presento = true;
                        seccion.AplicarEvaluaciones();                               
                    }
                    else
                    	System.out.println("Debe inscribir a los estudiantes");
                    lector.readLine();
                }
                break;
                case 6:{
                    if(inscribio)
                        seccion.ListarEstCed();                    
                    else
                    	if(inscribio)
                            buscarestudiante(seccion, lector);                  
                        else
                            System.out.println("Debe inscribir a los estudiantes");
                        lector.readLine();
                    lector.readLine();
                }
                break;
                case 7:{
                    if(presento)
                        seccion.ListarEstNotFin();
                    else
                        System.out.println("Debe aplicar las evaluaciones");
                    lector.readLine();
                }
                break;
                case 8:{
                    if(presento)
                        seccion.ListarEstApro();
                    else
                    	 System.out.println("Debe aplicar las evaluaciones");
                    lector.readLine();
                }
                break;
                case 9:{
                    if(presento)
                        seccion.ListarEstApla();
                    else
                    	 System.out.println("Debe aplicar las evaluaciones");
                    lector.readLine();
                }
                break;
                case 10:{
                    if(presento)
                        seccion.MostraPromedio();
                    else
                    	 System.out.println("Debe aplicar las evaluaciones");
                    lector.readLine();
                }
                break;
                default: System.exit(0);
            }
				System.out.println();
				} while (true);}


}
